#!/bin/sh
#
# ypbind-domain
#
# description: This is part of former ypbind init script, which is used 
#              to fix problems with the init scripts continuing even when 
#              we are really not bound yet to a server, and then things
#              that need NIS fail.
#

# NISTIMEOUT should be a multiple of 15 since
# ypwhich has a hardcoded 15sec timeout
[ -z "$NISTIMEOUT" ] && NISTIMEOUT=45

logger -t ypbind $"Binding NIS service"

timeout=$NISTIMEOUT
firsttime=1
rpcbound=0
SECONDS=0
retval=0
while [ $SECONDS -lt $timeout ] || [ $firsttime -eq 1 ] ; do
firsttime=0
if /usr/sbin/rpcinfo -p | LC_ALL=C fgrep -q ypbind
then
    rpcbound=1
    /usr/bin/ypwhich > /dev/null 2>&1
    retval=$?
    if [ $retval -eq 0 ]; then
	break;
    fi
fi
sleep 2
done

logger -t ypbind "Binding took $SECONDS seconds"

if [ $retval -eq 0 ]; then
    if [ $rpcbound -eq 0 ]; then
        logger -t ypbind \
            "NIS domain: `domainname`, ypbind not registered with rpcbind."
    else
        logger -t ypbind \
            "NIS domain: `domainname`, NIS server: `ypwhich 2> /dev/null`"
    fi
else
    logger -t ypbind \
        "NIS server for domain `domainname` is not responding."
    logger -t ypbind \
        "Killing ypbind with PID $MAINPID."
    kill -s 15 $MAINPID || :
    logger -t ypbind \
        "Try increase NISTIMEOUT in /etc/sysconfig/ypbind"
fi

exit $retval

